package com.example.common;

import android.os.Bundle;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;

import java.util.List;


public abstract class Activity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //界面未初始化前调用的方法
        initWindows();

        if(initArgs(getIntent().getExtras())){
            int layId=getContentLayoutId();
            setContentView(layId);
            init();
        }
        else{
            finish();
        }

    }

    /**
     * 初始化窗口
     */
    protected void initWindows(){

    }

    /**
     * 如果参数正确返回true，否则false
     * @param bundle
     * @return
     */
    protected boolean initArgs(Bundle bundle){
        return true;
    }

    /**
     * 得到当前界面资源ID
     * @return 资源文件id
     */
    protected abstract int getContentLayoutId();



    /**
     * 初始化
     */
    protected void init(){

    }

    @Override
    public boolean onSupportNavigateUp() {
        //当点击界面导航返回时，finish当前界面
        finish();
        return super.onSupportNavigateUp();
    }

    @Override
    public void onBackPressed() {
        //得到当前Activity的所有Fragment
        List<Fragment> fragments=getSupportFragmentManager().getFragments();
        //判空
        if(fragments!=null&&fragments.size()>0){
            //遍历
            for(Fragment fragment : fragments){
                //判断是否为我们能处理的Fragment类型
                if(fragment instanceof com.example.common.Fragment){
                    //判断是否拦截了返回按钮
                    if(((com.example.common.Fragment) fragment).onBackPressed()){
                        //如果有就返回
                        return;
                    }
                }
            }
        }


        super.onBackPressed();
        finish();
    }
}
